Next: Types Answer 4, Previous: Types Answer 2, Up: Answers to Exercises [Contents][Index]
We can make ‘inf - inf’ be any real
number we like, say, ‘a’, just by
claiming that we added ‘a’ to the first
infinity but not to the second. This is just as true for complex
values of ‘a’, so nan can
stand for a complex number. (And, similarly, uinf
can stand for an infinity that points in any direction in the
complex plane, such as ‘(0, 1)
inf’).
In fact, we can multiply the first inf by two.
Surely ‘2 inf - inf = inf’
, but also ‘2 inf - inf = inf - inf =
nan’. So nan can even stand for
infinity. Obviously it’s just as easy to make it stand for
minus infinity as for plus infinity.
The moral of this story is that “infinity” is a
slippery fish indeed, and Calc tries to handle it by having a
very simple model for infinities (only the direction counts, not
the “size”); but Calc is careful to write
nan any time this simple model is unable to tell
what the true answer is.